package com.example.vspm.mapper;

import com.example.vspm.entity.Person;
import com.example.vspm.entity.SendTable;
import com.example.vspm.entity.TaskForm;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author LCL
 * @date 2022/3/10
 * @desc
 */
@Mapper
@Repository
public interface SendTableMapper {



    /////////////////增加派单表,在接单员行为(接受,拒绝...)进行过后需要对状态personnelStatus更新
    @Insert("insert into vspm_sendTable (taid,mid,pid3,remark) values" +
            "(#{taid},#{mid},#{pid3},#{remark})")
    @Options(useGeneratedKeys=true, keyProperty="tid", keyColumn="tid")
    void addSendTable(SendTable sendTable);

    /////接单员拒绝,根据seesion的id更新派单表状态为拒绝
    @Update("update  vspm_sendTable set personnelStatus=#{personnelStatus} where taid=#{taid} and pid3=#{pid3}" )
    void updatePersonnelStatus(@Param("personnelStatus") String personnelStatus, @Param("taid") int taid,@Param("pid3") int pid3);


    /////评价完成后 根据前端提供工单id 更新评分
    //派单员接受最后评价完才可以更新其中的score,不然是默认的0分  ,在receiver中更新评分的总次数
    @Update("update  vspm_sendTable set score=#{score} where taid=#{taid}" )
    void updateScore(@Param("score") float score, @Param("taid") int taid);

    ////根据工单的id获取pid3
    @Select( "select * from vspm_sendTable where taid=#{taid} and personnelStatus='接受'")
    int getPid3(@Param("taid") int taid);















    //根据tid删除工单
    @Delete("delete from vspm_taskForm where tid=#{tid}")
    void deleteTaskForm(int tid);

    //根据工单tid更新
    @Update("")
    TaskForm updateTaskForm(TaskForm taskForm);

    //添加工单报单员的pID1
    @Update("update  vspm_taskForm set pid1=#{pid1} where tid=#{taid}" )
    void addTaskFormPID1(@Param("pid1") int pid1, @Param("taid") int tid);


    //查看工单
    @Select("select * from vspm_taskForm")
    List<TaskForm> listTaskForm();






}
